﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using Sio.Mdm.Types.Database;
using Sio.Mdm.Entities;
using Ext.Net;

namespace Sio.Mdm.Web.Instalacija.Varnost
{
    public partial class VarnostniZetoniSeznam : Controls.Page
    {

        #region Definitions
        public interface SplosnoRowEditData
        {
            int VarnostniZetonId { get; set; }
            string Naziv { get; set; }
        }
        #endregion

        #region OnLoad
        protected override void OnLoad(EventArgs e)
        {
            base.OnLoad(e);
            NaloziSeznam();
        }
        #endregion

        #region Editing
        protected void UrediPodatke(Object sender, DirectEventArgs e)
        {
            SplosnoRowEditData EditData = XML.Deserialize<SplosnoRowEditData>(e.ExtraParams["data"]);
            if (EditData.VarnostniZetonId == -99)
            {
                var ent = EntityFactory.CreateInstance<VarnostniZeton>();
                ent.Naziv = EditData.Naziv;
                ent.Update();
            }
            else if (EditData.VarnostniZetonId > 0)
            {
                var ent = EntityFactory.LoadEntity<VarnostniZeton>
                 (new Filter<VarnostniZeton>().Where(r => r.VarnostniZetonId == EditData.VarnostniZetonId)
                    );

                if (ent.EntityState != EntityState.Unknown)
                {
                    ent.Naziv = EditData.Naziv;
                    ent.Update();
                }
                else
                {
                    e.Success = false;
                    X.Msg.Alert("Manjkajoči podatki", "Iskani zapis ne obstaja.").Show();
                    return;
                }
            }
        }
        protected void OdstraniZapise(object sender, DirectEventArgs e)
        {
            List<int> deletedItems = e.GetIdList<int>("selected", "VarnostniZetonId");
            if (deletedItems.Count > 0)
            {
                var col = new EntityCollection<VarnostniZeton>(
                    new Filter<VarnostniZeton>().SelectByField(r => r.VarnostniZetonId, deletedItems.ToArray())
                );
                col.RemoveAll();
                col.Update();
            }
        }
        #endregion

        #region Private
        private void NaloziSeznam()
        {
            GridSplosniSeznam.LoadData<VarnostniZeton>(
                new Filter<VarnostniZeton>().Where(r => r.VarnostniZetonId != null));
        }
        #endregion
    }
}
